﻿#include "WRWorkStatus.h"

//表示工作状态文本集。
class WRWorkStatusTexts
{
private:
    QString m_val[13];

public:
    //初始化工作状态文本集。
    WRWorkStatusTexts(void)
    {
        m_val[WRWorkStatus::Unavail] = QStringLiteral("不可使用");
        m_val[WRWorkStatus::Closed] = QStringLiteral("已经关闭");
        m_val[WRWorkStatus::Opening] = QStringLiteral("正在打开");
        m_val[WRWorkStatus::Ready] = QStringLiteral("已经就绪");
        m_val[WRWorkStatus::Stopped] = QStringLiteral("已经停止");
        m_val[WRWorkStatus::Starting] = QStringLiteral("正在启动");
        m_val[WRWorkStatus::Running] = QStringLiteral("正在运行");
        m_val[WRWorkStatus::Stopping] = QStringLiteral("正在停止");
        m_val[WRWorkStatus::Blocked] = QStringLiteral("已经阻塞");
        m_val[WRWorkStatus::Closing] = QStringLiteral("正在关闭");
        m_val[WRWorkStatus::Disposing] = QStringLiteral("正在释放");
        m_val[WRWorkStatus::Disposed] = QStringLiteral("已经释放");
        m_val[WRWorkStatus::Unknown] = QStringLiteral("未知状态");
    }
    //获取指定工作状态的文本。
    const QString& get(WRWorkStatus::Enum val) const
    {
        int i = (int)val;
        if (i < 0 || i > 12)
            return m_val[12];
        return m_val[i];
    }
};

//返回当前对象的友好字符串。
const QString& WRWorkStatus::toString() const
{
    static WRWorkStatusTexts texts;
    return texts.get(m_value);
}
